#ifndef _YEP_VIDEO_IMAGE_HPP
#define _YEP_VIDEO_IMAGE_HPP

#include "../common.hpp"

namespace yep
{
class Canvas; // foward declaration;
class Vector2;

/**
 * @brief Represents an object that can be drawn o screen.
 **/
class Image
{
public:
    /**
     * @brief Virtual destructor because... I dunno, but they I must have it.
     **/
    virtual ~Image() {}

    /**
     * @brief Draw itself on the canvas.
     **/
    virtual void draw( Canvas &canvas, const Vector2 &position ) = 0;

    /**
     * @brief Draw a section from itself on canvas.
     **/
    virtual void draw( Canvas &canvas, const Vector2 &position, const Vector2 &sectionPosition, const Vector2 &sectionSize ) = 0;
};

}

#endif // _YEP_VIDEO_IMAGE_HPP

